package com.houger.ddd.seckill.facade.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.houger.ddd.common.base.BaseActivityDto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.io.Serial;
import java.time.LocalDateTime;

/**
 * 活动模板基础数据表
 * @author Houger
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class ActivityTemplateBasicDto extends BaseActivityDto {

    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(description = "活动状态；1 未启用，2 未开始，3 进行中，4 已结束，5 已停用，6 待审核，7 审核驳回，8 已取消,9 已终止")
    private Integer templateStatus;

    @Schema(description = "活动模板代码")
    private String templateCode;

    @Schema(description ="活动模板名称")
    private String templateName;

    @Schema(description ="活动类型；1-秒杀；0-未知")
    private Integer templateType;

    @Schema(description ="活动模板类型")
    private String templateTypeClass;

    @Schema(description ="活动标签")
    private String activityTag;

    @Schema(description ="开始时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startTime;

    @Schema(description ="结束时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endTime;

    @Schema(description ="应用端；0:未知;1:小程序;2：APP;3:h5;4:抖音小程序(多选，以逗号分隔),PlatformEnum")
    private String applyPlatforms;

    @Schema(description ="适用门店类型 1:全部门店,2:指定门店,3:排除门店")
    private Integer applyShopType;

    @Schema(description ="门店数据group id")
    private Long applyShopGroupId;

    @Schema(description ="活动排序")
    private Integer activitySort;

    @Schema(description ="可叠加优惠；0-不可叠加；1-可叠加")
    private Integer superposeDiscount;

    @Schema(description ="审核人")
    private String auditBy;

    @Schema(description ="审核时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime auditTime;

    @Schema(description ="审核备注")
    private String auditMemo;

    @Schema(description ="活动所属区域（以英文逗号分隔开）")
    private String regionCodes;

    @Schema(description ="审核id")
    private Long applyId;

    @Schema(description ="角色类型 0总部运营 1区域运营，默认-1（其他）")
    private Integer roleType;


}